-
Notifications
You must be signed in to change notification settings - Fork 5
chore: switch to an XcodeGen project file #32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: switch to an XcodeGen project file #32
Conversation
8f5f751 to
3b3eaf9
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For some reason the runtime search paths for the frameworks has changed, despite the config looking mostly the same:
When starting the network extension I'm getting:
ASI found [dyld] (sensitive) 'Library not loaded: /Library/Frameworks/VPNLib.framework/Versions/A/VPNLib
Referenced from: <306B8001-A2DD-3B40-8152-B2257E804958> /Library/SystemExtensions/0EB23306-84D3-465D-9069-4140FD750438/com.coder.Coder-Desktop.VPN.systemextension/Contents/MacOS/com.coder.Coder-Desktop.VPN
Reason: tried: '/Library/Frameworks/VPNLib.framework/Versions/A/VPNLib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Library/Frameworks/VPNLib.framework/Versions/A/VPNLib' (no such file), '/Library/Frameworks/VPNLib.framework/Versions/A/VPNLib' (no such file)'
Previously, the build folder in XCode was included in the list of directories it would look for the library, not just the system stores I know this because the tried list would include it when I had the same error before I embedded them, here's that error message:
ASI found [dyld] (sensitive) 'Library not loaded: @rpath/VPNLib.framework/Versions/A/VPNLib
Referenced from: <3CE45B2E-A079-384F-88F8-1CE9C94C7020> /Library/SystemExtensions/A55BDC5F-9B8D-4AEA-AFC7-B5D63AFADFD8/com.coder.Coder-Desktop.VPN.systemextension/Contents/MacOS/com.coder.Coder-Desktop.VPN
Reason: tried: '/Users/ethan/Library/Developer/Xcode/DerivedData/Coder_Desktop-ffdgfuvlnrlswxdjjgbkxtwmhuwc/Build/Products/Debug/PackageFrameworks/VPNLib.framework/Versions/A/VPNLib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/ethan/Library/Developer/Xcode/DerivedData/Coder_Desktop-ffdgfuvlnrlswxdjjgbkxtwmhuwc/Build/Products/Debug/PackageFrameworks/VPNLib.framework/Versions/A/VPNLib' (no such file), '/Library/SystemExtensions/A55BDC5F-9B8D-4AEA-AFC7-B5D63AFADFD8/com.coder.Coder-Desktop.VPN.systemextension/Contents/Frameworks/VPNLib.framework/Versions/A/VPNLib' (no such file), '/Library/SystemExtensions/Frameworks/VPNLib.framework/Versions/A/VPNLib' (no such file), '/Users/ethan/Library/Devel<…>'
But curiously:
This is on main:

and this is on this branch:

Perhaps it could be worth scrapping the dynamic frameworks altogether, and just including the contents of VPNLib and CoderSDK as compile targets for the app and NE, i.e. this setting:

WDYT?
Coder Desktop/project.yml
Outdated
| base: | ||
| INFOPLIST_FILE: VPN/Info.plist | ||
| PRODUCT_MODULE_NAME: "$(PRODUCT_NAME:c99extidentifier)" | ||
| PRODUCT_NAME: "$(inherited)" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I had to set PRODUCT_NAME to $(PRODUCT_BUNDLE_IDENTIFIER for the app to get the OS to prompt me to install the NE.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe it's cause you have the base setting for PRODUCT_NAME set to $(TARGET_NAME):
PRODUCT_NAME: "$(TARGET_NAME)"
Whereas on main the base value for PRODUCT_NAME is currently empty.
Setting that base value (changing the setting when the project is selected in XCode) causes it to inherit from that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does the PRODUCT_NAME: "$(PRODUCT_BUNDLE_IDENTIFIER)" only apply to this system extension, or should I remove that default base value?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah only the system extension is $(inherited), everything else is $(TARGET_NAME) (with ..:c99extidentifier for the frameworks)
ea316ce to
81bc611
Compare
81bc611 to
54eb681
Compare
Change-Id: I753a7652cdc730157ae7f8bc036338bae5e6b54b Signed-off-by: Thomas Kosiewski <[email protected]>
54eb681 to
4a91b6d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Coder Desktop runs end-to-end with this config, so LGTM!


This PR transitions the project from a manually maintained .xcodeproj file to an XcodeGen-managed project configuration.
It introduces a streamlined development workflow using XcodeGen to generate project files dynamically and includes necessary updates to documentation, .gitignore, and CI configuration.
Change-Id: I753a7652cdc730157ae7f8bc036338bae5e6b54b
Signed-off-by: Thomas Kosiewski [email protected]